/**
 * zmn产品模块-产品列表
 * @author tanghongjun
 * @since 2018/10/18
 */
layui.define(['index', 'form', 'table', 'laypage', 'layedit'], function (exports) {
    var $ = layui.$;
    var form = layui.form;
    var layer = layui.layer;
    var table = layui.table;
    var laypage = layui.laypage;
    var layedit = layui.layedit;

    table.init('zmn-table', {
        toolbar: "#zmn-table-tool",
        page: true,
        limit: json.pageSize,
        height: 'full-149',
        done: function (res) {
            $("div[lay-event='LAYTABLE_EXPORT']").attr('lay-event', 'CUSTOM_EXPORT');
        }
    });
    laypage.render(layui.$.extend({limits:[10, 20, 30, 40, 50,100]},zmnPage.laypageOptions(json)));

    let ids = new Array();

    // 选择（全选或单选）
    table.on("checkbox(zmn-table)", function (obj) {
        ids = table.checkStatus('zmn-table').data.map((item) => item.warrantyContentId);
    });

    // 监听导出事件
    form.on('submit(query-export)', function (data) {
        let index = layer.load(1, {
            shade: [0.5, '#DBDBDB'] //0.1透明度的白色背景
        });
        zmnUtil.downloadLimitByConfig("/warranty/content/exportExcel.action?" + $("#warranty_content_list").serialize(), "保修内容.xlsx", function () {
            layer.close(index);
        });
        return false;
    });

    // 启用/停用
    table.on("toolbar(zmn-table)", function (obj) {
        if (obj.event == 'CUSTOM_EXPORT') {
            $("#query-export").click();
            return ;
        }

        //启用停用
        if (obj.event != "start" && obj.event != "stop") {
            return false;
        }
        if (ids.length === 0) {
            return layer.alert("请选择至少1条数据！");
        }

        let statusValue = 1;
        let msg = "确认吗?";
        if (obj.event == 'start') {
            statusValue = 2;
        } else if (obj.event == 'stop') {
            statusValue = 1;
            msg = "确认停用所选择的保修内容吗？停用会删除项目和保修内容的关联关系，可能导致项目的保修信息没有保修内容。请先检查使用该保修内容的项目是否还有别的保修内容，若没有需要先修改项目的保修内容。";
        }
        layer.confirm(msg, function () {
            zmnPage.ajaxSimple('/warranty/content/updateStatus.action', {ids: ids.join(","), status: statusValue}, 1000);
        });
    });

    // 修改排序和首字母
    table.on("edit(zmn-table)", function (obj) {
        if(obj.field=='sort'){
            zmnPage.laySortPositiveInteger(obj.value,"/warranty/content/updateSort.action",obj.data.warrantyContentId,100000,500);
        }
    });

    zmnWarranty.laySelectSpecial(form, "/product/listChilds.action", "servCategId", "categOneId");

    //对外暴露的接口
    exports('plat_warranty_content_list', {});
});

var zmnWarranty = {
    /**
     * 多级下拉框联动
     * @param form layui.form
     * @param url1 selectOneId请求下级数据的url，返回数据格式 [[value,text], [value,text], [value,text], …]
     * @param url1 selectTwoId请求下级数据的url，返回数据格式 [[value,text], [value,text], [value,text], …]
     * @param selectOneId 第1级select的ID，不含#号
     * @param selectTwoId 第2级select的ID，不含#号
     * @param selectThrId 第3级select的ID，不含#号，如无第3级则两级联动
     */
    laySelectSpecial: function (form, url1, selectOneId, selectTwoId) {
        let $ = layui.$;
        form.on("select(" + selectOneId + ")", function (obj) {
            if (zmnUtil.isNull(obj) || obj.value == 0) {
                return false;
            }
            let servCategId = obj.value;
            $.ajax({
                type: "GET", url: url1,
                dataType: "json", data: {parentId: servCategId},
                success: function (items) {
                    var optionHtml = '<option value="">请选择</option>';
                    for (var i = 0; i < items.length; i++) {
                        optionHtml += '<option value="' + items[i][0] + '">' + items[i][1] + '</option>';
                    }
                    $("#" + selectTwoId).html(optionHtml);
                    form.render("select");
                }
            });
        });
    }
}
